import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
public class Editor extends JFrame
implements DocumentListener, ActionListener {
final static String WINDOW_MODIFIED = "windowModified";
JEditorPane jp;
JMenuBar jmb;
JMenu file;
JMenuItem save;
public Editor(String title) {
super(title);
jp = new JEditorPane();
jp.getDocument().addDocumentListener(this);
getContentPane().add(jp);
jmb = new JMenuBar();
file = new JMenu("File");
save = new JMenuItem("Save");
save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
java.awt.Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
save.addActionListener(this);
file.add(save);
jmb.add(file);
setJMenuBar(jmb);
setSize(400,600);
setVisible(true);
}
// doChange() ÇΔ actionPerformed() Ç≈ÅAwindowModified ÇÃèÛë‘ÇàµÇ§
public void doChange() {
getRootPane().putClientProperty(WINDOW_MODIFIED, Boolean.TRUE);
}
public void actionPerformed(ActionEvent e) {
// DZDZÇ≈ï€ë∂ã@î\ÇãLèqÇ∑ÇÈ
getRootPane().putClientProperty(WINDOW_MODIFIED, Boolean.FALSE);
}
// DocumentListener ÇÃé¿ëï
public void changedUpdate(DocumentEvent e) { doChange(); }
public void insertUpdate(DocumentEvent e) { doChange(); }
public void removeUpdate(DocumentEvent e) { doChange(); }
public static void main(String[] args) {
new Editor("test");
}
}
|